//该文件用于创建 store
import Vuex from 'vuex'
import Vue from 'vue'
Vue.use(Vuex)

//准备actions -用于响应组件中的动作
const actions = {
    /*add(context,value) {
        console.log('actions中的add被调用了',context,value)
        context.commit('ADD',value)
    },
    minus(context,value) {
        console.log('actions中的 minus 被调用了',context,value)
        context.commit('MINUS',value)
    },*/
    addOdd(context,value) {
        console.log('actions中的 addOdd 被调用了',context,value)
        if(context.state.sum % 2) {
            context.commit('ADD',value)
        }
        /*console.log('处理一堆逻辑。。。。。。。。。')
        context.dispatch('demo1',value)*/
    },
    addWait(context,value) {
        console.log('actions中的 addWait 被调用了',context,value)
        setTimeout(() => {
            context.commit('ADD',value)
        },1000)
    },

    demo1(context,value) {
        console.log('actions中的 demo1 被调用了',cont,value)
        if(context.state.sum % 2) {
            context.commit('ADD',value)
        }
    }

}

//用于操作数据
const mutations = {
    ADD(state,value) {
        console.log('mutations中的 ADD 被调用了',state,value)
        state.sum += value
    },
    MINUS(state,value) {
        console.log('mutations中的 MINUS 被调用了',state,value)
        state.sum -= value
    }
}

//用于存放数据
const state = {
    sum: 0,
    school: '北京大学',
    subject: '前端'
}

//用于将state中的数据进行加工
const getters = {
    bigSum(state) {
        return state.sum * 10
    }
}
//创建并暴露store
export default  new Vuex.Store({
    actions,
    mutations,
    state,
    getters
})

